package extenddemo;

import com.sun.nio.sctp.PeerAddressChangeNotification;

public class DynamicBinding {//动态绑定

    public static void main(String[] args) {
        m(new Object());
        m(new Student());
        m(new Person());
        //继承链 中 A 继承 B  B 继承 C  A最特殊的那一个  C是所有基础
        //JVM在运行的时候才会去找子类中的一个实现 去运行 具体调用的是 继承链中最近的那一个
        //动态绑定个人理解就是，传给object参数的是谁，就会运行谁
        //如果传入的对象中没有方法，那就会起运行它所继承的父类运行

    }

    public static void m(Object obj){
        System.out.println(obj.toString());

    }

    RichFather father = new RichSon("5653213","网红"); //隐式转换
}

class Student extends Person{

    @Override
    public String toString() {
        return "Student{}";
    }
}

class Person extends Object{
    @Override
    public String toString() {
        return "Person{}";
    }
}
